﻿using System.Collections.Generic;
using Foothill.Common;
using Foothill.Model;

namespace Foothill.Service.AdService
{
    public interface IAdSearchService
    {
        // construct search param for default list
        ForSaleAdAdvancedSearchParameter ConstructDefaultSearchParameter();

        ForSaleAdAdvancedSearchParameter ConstructQuickSearchParameter(int makeId, int modelId, int maxMileage, PriceRange priceFrom, PriceRange priceTo);

        // used when adding selected 
        void AssignMakeAndModelIds(ForSaleAdAdvancedSearchParameter searchParam,
            int makeId, int modelId, int makeId1, int modelId1, int makeId2, int modelId2);

        AdvancedSearchResult AdvancedSearch(ForSaleAdAdvancedSearchParameter searchParam);

        IList<ForSaleAd> FilterSearchResultList(ForSaleAdAdvancedSearchParameter searchParam, IList<ForSaleAd> completeResultList);

        IList<ForSaleAd> GetOnePage(IList<ForSaleAd> resultSet, int pageNum, int pageSize);
    }
}
